package ViewInterfaces;

import Model.Core.IEntity;
import Model.Diagrams.StateMachine;
import Model.Draw.IEntityDraw;
import Model.Draw.Point;
import java.util.List;
import javax.swing.JPanel;

/**
 * Projeto de TCC: Editor de Diagramas de comunicação BlueJ
 * @author Jose Luz e Michele Puretachi
 */
public interface ICommunicationDiagramDrawView extends IDrawView {

    public void manifestEntityDraw(IEntityDraw draw);

    public List<IEntity> tryGetEntityAt(Point point);

    public List<IEntityDraw> tryGetDrawAt(Point point);

    public void selectEntityFrom(Point point);

    public void unselectAllEntities();

    public void saveDraw(IEntityDraw draw);
    
    public void manifestStateMachine(StateMachine stateMachine);
    
    public void setRenameDraw(IEntityDraw draw);

    public void enableMoving(boolean enable);
    
    public void configureCommunicationContext();

    public void updateTabWith(String newName, JPanel manifestArea);

    public void updateCommunicationCanvas();
}
